1. Field of the Invention
The invention described herein relates to application programs and in particular relates to enhancing functionality of applications.
2. Related Art
A user of an application program may sometimes need to supplement the functionality of the application with additional capabilities. One way of accomplishing this is through the use of plug-in modules. A plug-in module can add menu items or other user interface features that represent additional options for manipulation of data. A standard protocol is typically used so that the application can discover and make use of a plug-in.
This approach is limited, however, in that a given plug-in is generally bound to a specific application. If functionality similar to that of the plug-in is desired in another application, the plug-in cannot be used for the latter application. That application would need its own plug-in. This arrangement limits the utility of a plug-in to a particular application.
This is true regardless of whether the user interface to the operating system is a graphical, windows-based interface or a command line interface. In either case, there is no way to invoke additional common functionality for multiple applications. In the case of a windows-based operating system, for example, the manipulation of data objects is generally easy and intuitive for a user. Data and data structures can be readily moved about. Files can be submitted to any of several applications for processing of the file, by selecting a graphic that represents a file, and moving it to or from a graphic that represents one of the applications. Such an application might be depicted as an opened window. Such movement of a file is generally termed “dragging and dropping” of the file, given that the relocation process involves moving (or “dragging”) the file icon and placing it in a destination (“dropping”). Data can also be moved about easily, by selecting the data as it appears in a window associated with an application (e.g., highlighting text in a word processing application), and moving it to another window that may represent another application (e.g., pasting the text into a spreadsheet application).
But while data and files can be readily moved to any of several applications in a windows environment, functionality is not generally easy to select and move to applications. There is a need, therefore, for a system and method by which additional capability can be added to any of several applications, without being restricted to a single application.